// axios中的默认配置项
const defaults = {
	timeout:0
}
class Axios {
	constructor(instanceConfig) {
		this.defaults = instanceConfig;
	}
	request(configOrUrl={}, config={}){
		// 判断configOrUrl是否为地址
		if(typeof configOrUrl === "string"){
			// 将地址作为配置对象中的url属性值
			config.url = configOrUrl;
		}else{
			// 将configOrUrl作为配置对象处理
			config = configOrUrl;
		}
		config = {
			...this.defaults,
			...config
		};
		config.method = (config.method || "get").toLowerCase();
		console.log(config);
	}
}

function createInstance(defaultConfig) {
	// 实例化Axios类，得到的实例赋值给常量context
	const context = new Axios(defaultConfig);
	// 将Axios.prototype.request函数中的this绑定为context,赋值给常量instance
	const instance = Axios.prototype.request.bind(context)
	return instance;
}

const axios = createInstance(defaults);
export default axios;